home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / 68343ffp.arc / IEFSQRT.SA < prev    next >
Text File  |  1989-08-30  |  4KB  |  83 lines

  1.       TTL    IEEE FORMAT EQUIVALENT SQUARE ROOT (IEFSQRT)
  2. *******************************************
  3. * (C)  COPYRIGHT 1981 BY MOTOROLA INC.    *
  4. *******************************************
  5.  
  6. *************************************************
  7. *                IEFSQRT                        *
  8. *      IEEE FORMAT EQUIVALENT SQUARE ROOT       *
  9. *                                               *
  10. * INPUT:                                        *
  11. *          D7 - IEEE FORMAT ARGUMENT            *
  12. *                                               *
  13. * OUTPUT:                                       *
  14. *          D7 - IEEE FORMAT SQUARE ROOT         *
  15. *                                               *
  16. * CONDITION CODES:                              *
  17. *                                               *
  18. *   IF THE RESULT IS VALID -                    *
  19. *          N - CLEARED                          *
  20. *          Z - SET IF RESULT IS ZERO            *
  21. *          V - CLEARED                          *
  22. *          C - UNDEFINED                        *
  23. *          X - UNDEFINED                        *
  24. *                                               *
  25. *   IF THE RESULT IS INVALID DUE TO A           *
  26. *   NEGATIVE NON-ZERO OR NAN INPUT ARGUMENT-    *
  27. *          N - UNDEFINED                        *
  28. *          Z - CLEARED                          *
  29. *          V - SET                              *
  30. *          C - UNDEFINED                        *
  31. *          X - UNDEFINED                        *
  32. *                                               *
  33. *        ALL REGISTERS ARE TRANSPARENT          *
  34. *                                               *
  35. *        MAXIMUM STACK USED:   24 BYTES         *
  36. *                                               *
  37. * NOTES:                                        *
  38. *   1) VALID RESULTS ARE OBTAINED UNLESS        *
  39. *      THE INPUT ARGUMENT WAS A NEGATIVE        *
  40. *      NON-ZERO NUMBER OR NAN (NOT-A-           *
  41. *      NUMBER) WHICH CAN BE DETERMINED BY       *
  42. *      THE "V" BIT SETTING IN THE CCR.          *
  43. *   2) SEE THE MC68344 USER'S GUIDE FOR         *
  44. *      DETAILS ON THE RANGES HANDLED BY         *
  45. *      THE FAST FLOATING POINT EQUIVALENT       *
  46. *      ROUTINES.                                *
  47. *                                               *
  48. *************************************************
  49.          PAGE
  50. IEFSQRT  IDNT 1,1  IEEE FORMAT EQUIVALENT SQUARE ROOT
  51.  
  52.        SECTION   9
  53.  
  54.       XDEF   IEFSQRT   ENTRY POINT
  55.  
  56.          XREF      9:FFPSQRT FAST FLOATING POINT SQUARE ROOT ROUTINE
  57.          XREF      9:IEFSOP  SINGLE OPERAND FRONT-END HANDLER
  58.          XREF      9:IEFTIEEE BACK-END HANDLER TO RETURN IEEE FORMAT
  59.          XREF      9:IEFRTNAN ERROR HANDLER TO RETURN A NAN (NOT-A-NUMBER)
  60.          XREF      9:IEFRTOD7 RETURN ORIGINAL CALLER'S D7
  61.       XREF   FFPCPYRT  COPYRIGHT NOTICE
  62.  
  63. *********************
  64. * SQUARE ROOT ENTRY *
  65. *********************
  66. IEFSQRT  BSR       IEFSOP    CONVERT THE OPERAND
  67.          BRA.S     IEFNRM    BRANCH BOTH NORMALIZED
  68. * ARGUMENT WAS INFINITY - RETURN A NAN IF MINUS
  69.          BMI       IEFRTNAN  RETURN NAN IF IT IS MINUS INFINITY
  70.          BRA       IEFRTOD7  JUST RETURN INPUT ARGUMENT IF PLUS INFINITY
  71.  
  72. * ARGUMENT WAS NORMALIZED
  73. IEFNRM   BMI       IEFRTNAN  RETURN NAN FOR INVALID NEGATIVE ARGUMENT
  74.          MOVE.L    16(SP),D5 INSURE WAS NOT A NEGATIVE VERY SMALL NUMBER
  75.          BPL.S     IEFSDOIT  BRANCH WAS POSITIVE
  76.          ADD.L     D5,D5     RID SIGN BYTE TO CHECK IF WAS NEGATIVE ZERO
  77.          BNE       IEFRTNAN  RETURN NAN FOR VERY SMALL NEGATIVE NUMBERS ALSO
  78. IEFSDOIT BSR       FFPSQRT   PERFORM SQUARE ROOT
  79.          BRA       IEFTIEEE  AND RETURN IEEE FORMAT BACK TO CALLER
  80.  
  81.          END
  82.  
  83.